package cn.lingyangwl.agile.infra.datamanage.mode.entity;

import cn.lingyangwl.agile.model.BasePlusPO;
import cn.lingyangwl.agile.model.module.dict.CusFieldBind;
import cn.lingyangwl.agile.model.module.dict.DictTypeCons;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * 数据源配置表
 * @author shenguangyang
 */
@Getter
@Setter
@ToString
@TableName("lcp_datasource_config")
public class DatasourceConfig extends BasePlusPO {
    @TableId
    private Long id;
    /**
     * 数据源名称
     */
    private String name;
    /**
     * 数据库类型
     * @see DbType
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @CusFieldBind(type = DictTypeCons.DATABASE_TYPE, target = "dbTypeText")
    private Integer dbType;

    @TableField(exist = false)
    private String dbTypeText;

    /**
     * 数据库驱动
     */
    private String driverClass;

    /**
     * 数据库别名
     */
    private String dbDesc;

    /**
     * 数据库名称
     */
    private String dbName;

    /**
     * schema(PGSQL专用)
     */
    private String schemaName;

    /**
     * 数据库host
     */
    private String host;

    /**
     * 数据库端口
     */
    private Integer port;

    /**
     * 数据库用户名
     */
    private String username;

    /**
     * 数据库密码
     */
    private String password;

    /**
     * 数据库分组名称
     */
    private String dbGroupName;
}